ποΈGitΠ―ΡΠ°ποΈ
Node / meshtastic / Meshtastic-Android / files / specs / 20260520-153428-remove-admin-channel-toggle / spec.md
specs/20260520-153428-remove-admin-channel-toggle/spec.md 212bc596e37fd45e75b830e36cd825972f12cf79 (212bc596) Text, 6.53 KB
Feature Specification: Remove Admin Channel Enabled Toggle
Feature Branch: T383838jamesarich-issue-5545-alignment-remove-admin-channel-enabled-ca777c
Created: 2025-05-20
Status: Draft
Input: User description: "Remove adminchannelenabled toggle from the Security Config screen"
Cross-Platform Spec: N/A β platform alignment removal (aligning Android with Apple client behavior)
Summary
Remove the T383838admin_channel_enabled toggle from the Security Config settings screen in the Android client. This toggle is Android-only, not present in the Apple client, and has been identified as a cross-platform discrepancy in the settings validation audit. With PKC-based administration becoming the default approach, this toggle creates user confusion and should be removed to align both clients.
Goals
β’ Remove the T383838admin_channel_enabled UI toggle from the Security Config screen
β’ Align the Android client's Security Config screen with the Apple client
β’ Reduce user confusion around legacy admin channel configuration
β’ Maintain full PKC-based admin functionality without regression
Non-Goals
β’ Removing or modifying the underlying T383838admin_channel_enabled proto field (it remains in the protobuf schema)
β’ Changing any backend/firmware behavior related to admin channels
β’ Modifying PKC-based administration logic
β’ Removing string resources from locale files (cleanup can be done separately)
User Scenarios & Testing (mandatory)
User Story 1 - Security Config Screen Without Legacy Toggle (Priority: P1)
As a user navigating to the Security Config screen, I no longer see the T383838admin_channel_enabled toggle, resulting in a cleaner interface focused on PKC-based administration.
Why this priority: This is the core deliverable β removing the toggle from the UI.
Independent Test: Can be fully tested by navigating to the Security Config screen and verifying the toggle is absent, while all other security settings remain functional.
Acceptance Scenarios:
1. Given a user opens the Security Config screen, When the screen renders, Then the T383838admin_channel_enabled toggle and its associated divider are not displayed.
2. Given a user opens the Security Config screen, When reviewing available settings, Then all other security configuration options remain visible and functional.
User Story 2 - PKC Admin Functionality Unaffected (Priority: P1)
As a user performing administrative actions via PKC-based administration, the removal of the toggle does not affect my ability to manage nodes.
Why this priority: Ensuring no regression in core admin functionality is critical.
Independent Test: Can be tested by performing PKC-based admin operations (e.g., remote node configuration) after the toggle removal and verifying they succeed.
Acceptance Scenarios:
1. Given a user has PKC-based admin configured, When they perform a remote admin operation, Then the operation completes successfully as before.
2. Given a device had T383838admin_channel_enabled previously set to true, When the user opens Security Config, Then the setting value persists in the proto config but is simply not shown in the UI.
Edge Cases
β’ What happens when a device has T383838admin_channel_enabled set to T383838true in its stored config? The value remains in the proto; it is simply no longer surfaced or toggleable in the UI.
β’ What happens on config export/import? The field remains in the protobuf schema, so existing exports with the field set remain valid and importable.
Architecture
Key Components
ββββββββββββββββββββββββ¬βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Component β Module / File β Purpose β
ββββββββββββββββββββββββΌβββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SecurityConfigScreen β T383838feature/settings/srβ¦ β Screen where the toggle is removed β
β String resources β T383838core/resources/src/β¦ β T383838legacy_admin_channel string (unused after removal) β
ββββββββββββββββββββββββ΄βββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββ
Requirements (mandatory)
Functional Requirements
β’ FR-001: The Security Config screen MUST NOT display the T383838admin_channel_enabled toggle (SwitchPreference) or its preceding HorizontalDivider
β’ FR-002: The Security Config screen MUST continue to display all other security configuration options unchanged
β’ FR-003: The underlying proto field T383838admin_channel_enabled on T383838Config.SecurityConfig MUST NOT be modified or removed
Non-Functional Requirements
β’ NFR-001: The Security Config screen must render without visual artifacts or layout shifts where the toggle was previously positioned
β’ NFR-002: Existing screenshot tests (if any) for Security Config must be updated to reflect the removal
Source-Set Impact
βββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Source Set β Impact β Justification β
βββββββββββββββΌβββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β T383838commonMain β Modified: T383838SecurityConfigScreen.kt (β¦ β All UI is in commonMain per Constitution Β§I β
β T383838androidMain β None β No platform-specific changes needed β
β T383838jvmMain β None β No desktop-specific changes needed β
βββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
Design Standards Compliance
β’ [x] New screens reviewed against design standards β N/A (removal only, no new UI)
β’ [x] M3 component selection verified β N/A (no new components)
β’ [x] Accessibility: TalkBack semantics β N/A (removing element, not adding)
β’ [x] Typography β N/A (no new text)
Privacy Assessment
β’ [x] No PII, location data, or cryptographic keys logged or exposed
β’ [x] No new network calls that transmit user data
β’ [x] Proto submodule (T383838core/proto) not modified (read-only upstream)
Success Criteria (mandatory)
Measurable Outcomes
β’ SC-001: The Security Config screen displays zero instances of the admin channel enabled toggle
β’ SC-002: All existing PKC-based admin operations complete successfully after the change (no regression)
β’ SC-003: The Android Security Config screen field count matches the Apple client's Security Config screen (alignment achieved)
Assumptions
β’ All business logic and UI composables reside in T383838commonMain source set
β’ The proto field T383838admin_channel_enabled remains available for firmware communication; only the UI toggle is removed
β’ String resource cleanup (T383838legacy_admin_channel) is considered optional follow-up work and not required for this feature
β’ The Apple client's Security Config screen is the reference for cross-platform alignment
β’ No other screens or components reference the T383838admin_channel_enabled toggle UI
Served by rngit 1.5.4 - Generated in 0.13s